﻿using System;
using Sinacor.Infra.Service.Common;
using Sinacor.Infra.Service.Validation;

namespace Sinacor.Servico.Bovespa.Corretagem.BusinessEntity.Parameter
{
    /// <summary>
    /// Entidade de filtro para obter uma política de corretagem pela chave
    /// </summary>
    public class FiltroPoliticaCorretagemChave : BaseBusinessEntity
    {
        #region Atributos

        private const int RSCODIGO = 109527;
        private const int RSDATAINICIAL = 109528;
        
        private int? _codigo;
        private DateTime? _dataInicial;

        #endregion

        #region Construtores

        /// <summary>
        /// Construtor FiltroPoliticaCorretagemChave
        /// </summary>
        public FiltroPoliticaCorretagemChave() { }

        /// <summary>
        /// Construtor FiltroPoliticaCorretagemChave
        /// </summary>
        /// <param name="codigo"></param>
        /// <param name="dataInicial"></param>
        public FiltroPoliticaCorretagemChave(int? codigo, DateTime? dataInicial)
        {
            this._codigo = codigo;
            this._dataInicial = dataInicial;
        }

        #endregion 

        #region Propriedades

        /// <summary>
        /// Codigo da política de corretagem
        /// </summary>
        [NotNull(RSCODIGO)]
        public int? Codigo
        {
            get
            {
                return _codigo;
            }
            set
            {
                _codigo = value;
            }
        }

        /// <summary>
        /// Data inicial de vigência da política de corretagem
        /// </summary>
        [NotNull(RSDATAINICIAL)]
        public DateTime? DataInicial
        {
            get
            {
                return _dataInicial;
            }
            set
            {
                _dataInicial = value;
            }
        }

        #endregion
    }
}